<html>
<head><meta charset="utf-8"><title>Canonicalization · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html">Canonicalization</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="203133763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203133763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203133763">(Jul 07 2020 at 17:28)</a>:</h4>
<p>Is it just me or is this bit of code wrong? <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_infer/infer/canonical/mod.rs#L68">https://github.com/rust-lang/rust/blob/master/src/librustc_infer/infer/canonical/mod.rs#L68</a></p>



<a name="203133812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203133812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203133812">(Jul 07 2020 at 17:29)</a>:</h4>
<p>Shouldn't that be <code>1..canonical.max_universe</code></p>



<a name="203133853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203133853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203133853">(Jul 07 2020 at 17:29)</a>:</h4>
<p>Since it's chained from <code>ROOT</code></p>



<a name="203133879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203133879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203133879">(Jul 07 2020 at 17:29)</a>:</h4>
<p>(so, this actually creates one extra universe)</p>



<a name="203134054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134054">(Jul 07 2020 at 17:30)</a>:</h4>
<p>It's an exclusive range, so it's counting 0 twice and <code>max_universe</code> zero times</p>



<a name="203134122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134122">(Jul 07 2020 at 17:31)</a>:</h4>
<p><span aria-label="face palm" class="emoji emoji-1f926" role="img" title="face palm">:face_palm:</span>‍♂️ ah</p>



<a name="203134154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134154">(Jul 07 2020 at 17:31)</a>:</h4>
<p>But yeah, <code>1..=canonical.max_universe</code> would be clearer</p>



<a name="203134269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134269">(Jul 07 2020 at 17:32)</a>:</h4>
<p>wait...</p>



<a name="203134307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134307">(Jul 07 2020 at 17:32)</a>:</h4>
<p>So, if <code>canonical.max_universe</code> is 1</p>



<a name="203134373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134373">(Jul 07 2020 at 17:33)</a>:</h4>
<p>the it would be <code>ROOT</code> chained with <code>0..1</code> (so length 1)</p>



<a name="203134378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134378">(Jul 07 2020 at 17:33)</a>:</h4>
<p>so two universes</p>



<a name="203134485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134485">(Jul 07 2020 at 17:34)</a>:</h4>
<p>oh wait</p>



<a name="203134488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134488">(Jul 07 2020 at 17:34)</a>:</h4>
<p>Is <code>max_universe</code> the number of universes, or the index of the largest universe?</p>



<a name="203134516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203134516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203134516">(Jul 07 2020 at 17:34)</a>:</h4>
<p>yeah, it's the index of the largest</p>



<a name="203139152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203139152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203139152">(Jul 07 2020 at 18:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> do you think you could help me come up with some tests for <a href="https://github.com/rust-lang/chalk/issues/512">https://github.com/rust-lang/chalk/issues/512</a></p>



<a name="203142709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203142709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203142709">(Jul 07 2020 at 18:44)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> I could! Are you working on this? I was thinking of hacking on that some, but happy to not do so :)</p>



<a name="203142742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203142742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203142742">(Jul 07 2020 at 18:44)</a>:</h4>
<p>I did start playing a bit</p>



<a name="203142757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203142757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203142757">(Jul 07 2020 at 18:45)</a>:</h4>
<p>But I can just push what I have</p>



<a name="203142767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203142767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203142767">(Jul 07 2020 at 18:45)</a>:</h4>
<p>if you want to take over</p>



<a name="203143532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203143532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203143532">(Jul 07 2020 at 18:50)</a>:</h4>
<p>I'm not sure if the test added in <a href="https://github.com/rust-lang-nursery/chalk/issues/529">chalk#529</a> is sufficient</p>



<a name="203144858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203144858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203144858">(Jul 07 2020 at 18:59)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> well so far I only got so far as working on the impl trait docs, and I still have more to do there, and I've also completely failed to keep up with GH notifications, so don't block on me :P</p>



<a name="203144871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203144871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203144871">(Jul 07 2020 at 18:59)</a>:</h4>
<p>my eyes are maybe bigger than my plate this week</p>



<a name="203145016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203145016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203145016">(Jul 07 2020 at 19:00)</a>:</h4>
<p>yeah, I would certainly say if that if you had to pick between this and <code>impl Trait</code>, go with <code>impl Trait</code> :)</p>



<a name="203145022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203145022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203145022">(Jul 07 2020 at 19:00)</a>:</h4>
<p>but I did think that sem-syn equality in general was a good area that seemed to be blocking a lot of things</p>



<a name="203145104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203145104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203145104">(Jul 07 2020 at 19:00)</a>:</h4>
<p>Also the subtyping PR is probably higher priority than this</p>



<a name="203227146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227146">(Jul 08 2020 at 03:16)</a>:</h4>
<p>So, I mostly canonicalization of placeholders working (there's an edge case that I have to track down)</p>



<a name="203227162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227162">(Jul 08 2020 at 03:16)</a>:</h4>
<p>but I ran into a problem: all of our tests need to be fixed</p>



<a name="203227167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227167">(Jul 08 2020 at 03:16)</a>:</h4>
<p>consider: <code>goal { forall &lt; 'a &gt; { fn (fn1 &lt; 'a &gt;) : Foo } }</code></p>



<a name="203227182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227182">(Jul 08 2020 at 03:17)</a>:</h4>
<p>for </p>
<div class="codehilite"><pre><span></span><code>program {
    trait Foo { } struct fn1 &lt; &#39;a &gt; { } struct fn2 &lt; &#39;a, &#39;b &gt; { } impl Foo for
    for &lt; &#39;a &gt; fn (fn1 &lt; &#39;a &gt;) { }
}
</code></pre></div>



<a name="203227199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227199">(Jul 08 2020 at 03:17)</a>:</h4>
<p>Before, we got: <code>Unique; substitution [], lifetime constraints [InEnvironment { environment: Env([]), goal: '!1_0: '!3_0 }, InEnvironment { environment: Env([]), goal: '!3_0: '!1_0 }]</code></p>



<a name="203227254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203227254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203227254">(Jul 08 2020 at 03:18)</a>:</h4>
<p>But now, we get <code>Unique; for&lt;?U1,?U3&gt; { substitution [?0 := '^0.0], lifetime constraints [InEnvironment { environment: Env([]), goal: '^0.0: '^0.1 }, InEnvironment { environment: Env([]), goal: '^0.1: '^0.0 }] }</code></p>



<a name="203304881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203304881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203304881">(Jul 08 2020 at 18:33)</a>:</h4>
<p>Welp okay so that edge case I was talking about, that seems to be the program clauses before instantiation issue</p>



<a name="203305036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305036">(Jul 08 2020 at 18:34)</a>:</h4>
<p><code>solve_iteration</code> is called with a goal of <code>UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([for&lt;&gt; AliasEq(&lt;^1.0 as Iterator&gt;::Item = ^1.1), for&lt;&gt; FromEnv(^1.0: Iterator), for&lt;&gt; AliasEq(&lt;^1.1 as IntoIterator&gt;::Item = Uint(U32)), for&lt;&gt; FromEnv(^1.1: IntoIterator)]), goal: FromEnv(^0.2: Iterator) }, binders: [PlaceholderTy(!1_0), PlaceholderTy(!1_1), Ty(General, U1)] }, universes: 2 }</code></p>



<a name="203305068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305068">(Jul 08 2020 at 18:34)</a>:</h4>
<p>But then we ask for program clauses like: <code>program_clauses_for_goal{environment=Env([for&lt;&gt; AliasEq(&lt;^1.0 as Iterator&gt;::Item = ^1.1), for&lt;&gt; FromEnv(^1.0: Iterator), for&lt;&gt; AliasEq(&lt;^1.1 as IntoIterator&gt;::Item = Uint(U32)), for&lt;&gt; FromEnv(^1.1: IntoIterator)]), goal=FromEnv(^0.2: Iterator)}</code></p>



<a name="203305084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305084">(Jul 08 2020 at 18:34)</a>:</h4>
<p>And we've lost the binders</p>



<a name="203305134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305134">(Jul 08 2020 at 18:35)</a>:</h4>
<p>So we get <code>clauses=[for&lt;&gt; FromEnv(^1.0: Iterator), for&lt;type&gt; FromEnv(^0.0: Iterator) :- FromEnv((Iterator::Item)&lt;^0.0&gt;), for&lt;type&gt; FromEnv(&lt;^0.0 as IntoIterator&gt;::IntoIter: Iterator) :- FromEnv(^0.0: IntoIterator)]</code></p>



<a name="203305158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305158">(Jul 08 2020 at 18:35)</a>:</h4>
<p>and <code>solve_from_clauses{clause=for&lt;&gt; FromEnv(^1.0: Iterator)}</code></p>



<a name="203305575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203305575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203305575">(Jul 08 2020 at 18:38)</a>:</h4>
<p>So, we either need to subst the bound vars in <code>clause</code> or wrap it in a <code>Binders</code></p>



<a name="203310457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310457">(Jul 08 2020 at 19:20)</a>:</h4>
<p>Okay so I solved that by essentially wrapping the clause into a <code>UCanonical</code> and subst'ing it</p>



<a name="203310469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310469">(Jul 08 2020 at 19:20)</a>:</h4>
<p><em>But</em> new problem</p>



<a name="203310507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310507">(Jul 08 2020 at 19:21)</a>:</h4>
<p>Now that placeholders get canonicalized</p>



<a name="203310531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310531">(Jul 08 2020 at 19:21)</a>:</h4>
<p>they're getting instantiated as inference vars</p>



<a name="203310561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310561">(Jul 08 2020 at 19:21)</a>:</h4>
<p>which for <code>non_enumerable</code> traits flounders...</p>



<a name="203310658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203310658">(Jul 08 2020 at 19:22)</a>:</h4>
<p>I guess the only way to solve this would be to have the vars for <code>Binders</code> be <code>CanonicalVarKinds</code> instead of <code>VariableKinds</code></p>



<a name="203326427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203326427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203326427">(Jul 08 2020 at 21:33)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> around?</p>



<a name="203442145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203442145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203442145">(Jul 09 2020 at 21:19)</a>:</h4>
<p>(This might be a silly question, but) why do we want to canonicalize placeholders?</p>



<a name="203455511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203455511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203455511">(Jul 09 2020 at 23:42)</a>:</h4>
<p>I honestly don't know</p>



<a name="203455526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203455526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#203455526">(Jul 09 2020 at 23:42)</a>:</h4>
<p>Its the way rustc does it</p>



<a name="204260304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260304">(Jul 17 2020 at 21:17)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> I'm around-ish now...</p>



<a name="204260345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260345">(Jul 17 2020 at 21:17)</a>:</h4>
<p>The reason that I want to canonicalize placeholders is that it is <em>more canonical</em>, for one thing</p>



<a name="204260369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260369">(Jul 17 2020 at 21:17)</a>:</h4>
<p>I haven't looked at this in a week</p>



<a name="204260431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260431">(Jul 17 2020 at 21:18)</a>:</h4>
<p>ok, well, I just caught up on notifications mostly</p>



<a name="204260436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260436">(Jul 17 2020 at 21:18)</a>:</h4>
<p>nice</p>



<a name="204260477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260477">(Jul 17 2020 at 21:18)</a>:</h4>
<p>Let me check if I actually pushed this branch</p>



<a name="204260544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204260544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204260544">(Jul 17 2020 at 21:19)</a>:</h4>
<p>Yeah, I think this is up to date: <a href="https://github.com/jackh726/chalk/tree/canonicalize">https://github.com/jackh726/chalk/tree/canonicalize</a></p>



<a name="204261996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204261996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204261996">(Jul 17 2020 at 21:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/Canonicalization/near/203310658">said</a>:</p>
<blockquote>
<p>I guess the only way to solve this would be to have the vars for <code>Binders</code> be <code>CanonicalVarKinds</code> instead of <code>VariableKinds</code></p>
</blockquote>
<p>I guess this is the question. Is this how we want to move forward?</p>



<a name="204262101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204262101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204262101">(Jul 17 2020 at 21:32)</a>:</h4>
<p>Or maybe it isn't needed and I just didn't do something right. Which is possible.</p>



<a name="204262414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204262414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204262414">(Jul 17 2020 at 21:35)</a>:</h4>
<p>I'm currently reading <a href="https://github.com/rust-lang/rust/issues/73503">#73503</a></p>



<a name="204262423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204262423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204262423">(Jul 17 2020 at 21:35)</a>:</h4>
<p>will try to take a look shortly!</p>



<a name="204262551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204262551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204262551">(Jul 17 2020 at 21:36)</a>:</h4>
<p>no rush :)</p>



<a name="204263392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204263392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204263392">(Jul 17 2020 at 21:44)</a>:</h4>
<p>Just ping me when/if you want to chat. Just working on some other things.</p>



<a name="204263785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204263785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204263785">(Jul 17 2020 at 21:49)</a>:</h4>
<p>Ok, I've probably got to stop for the day, but I'll try to take a look monday or maybe over weekend and leave any thoughts</p>



<a name="204263923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204263923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204263923">(Jul 17 2020 at 21:51)</a>:</h4>
<p>Works for me</p>



<a name="204596865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204596865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204596865">(Jul 21 2020 at 20:06)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> looking at your branch now</p>



<a name="204596936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204596936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204596936">(Jul 21 2020 at 20:07)</a>:</h4>
<p>Cool</p>



<a name="204596948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204596948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204596948">(Jul 21 2020 at 20:07)</a>:</h4>
<p>I'm around-ish to discuss if you need</p>



<a name="204597580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204597580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204597580">(Jul 21 2020 at 20:13)</a>:</h4>
<p>I guess the point is that everything breaks? :)</p>



<a name="204597742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204597742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204597742">(Jul 21 2020 at 20:14)</a>:</h4>
<p>yeah, basically</p>



<a name="204597758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204597758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204597758">(Jul 21 2020 at 20:14)</a>:</h4>
<p>well, not <em>everything</em></p>



<a name="204597763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204597763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204597763">(Jul 21 2020 at 20:15)</a>:</h4>
<p>just most things</p>



<a name="204598188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598188">(Jul 21 2020 at 20:19)</a>:</h4>
<p>ok :)</p>



<a name="204598560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598560">(Jul 21 2020 at 20:22)</a>:</h4>
<p>any thoughts?</p>



<a name="204598776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598776">(Jul 21 2020 at 20:24)</a>:</h4>
<p>well, in the ones I've looked at so far, the error is mostly in the "diff"</p>



<a name="204598789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598789">(Jul 21 2020 at 20:24)</a>:</h4>
<p>that is, the output is correct, but it now looks different</p>



<a name="204598837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598837">(Jul 21 2020 at 20:25)</a>:</h4>
<p>because where it used to include (e.g.) <code>!1_1</code>, it now includes a bound variable (e.g., <code>^0.0</code>)</p>



<a name="204598894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598894">(Jul 21 2020 at 20:26)</a>:</h4>
<p>I am wondering though if we ought to be "instantiating" that solution before printing it</p>



<a name="204598943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598943">(Jul 21 2020 at 20:26)</a>:</h4>
<p>or if it's better to update the diff</p>



<a name="204598987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204598987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204598987">(Jul 21 2020 at 20:26)</a>:</h4>
<p>it's also true I think that the canonicalization pretty-printing isn't dumping quite enough information</p>



<a name="204600284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204600284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204600284">(Jul 21 2020 at 20:39)</a>:</h4>
<p>example:</p>



<a name="204600289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204600289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204600289">(Jul 21 2020 at 20:39)</a>:</h4>
<div class="codehilite"><pre><span></span><code><span class="gd">-&quot;Unique;substitution[],lifetimeconstraints[InEnvironment{environment:Env([]),goal:\&#39;!1_0:\&#39;!1_1},InEnvironment{environment:Env([]),goal:\&#39;!1_1:\&#39;!1_0}]&quot;</span>
<span class="gi">+&quot;Unique;for&lt;?U1,?U1&gt;{substitution[?0:=\&#39;^0.0,?1:=\&#39;^0.1],lifetimeconstraints[InEnvironment{environment:Env([]),goal:\&#39;^0.0:\&#39;^0.1},InEnvironment{enviro&quot;</span>
</code></pre></div>



<a name="204600404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204600404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204600404">(Jul 21 2020 at 20:40)</a>:</h4>
<p>but some other tests are getting other results, I guess, like Ambiguous instead of Unique</p>



<a name="204600440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204600440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204600440">(Jul 21 2020 at 20:41)</a>:</h4>
<p>Also, I'm not sure why the <code>substitution</code> is non-empty</p>



<a name="204600442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204600442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204600442">(Jul 21 2020 at 20:41)</a>:</h4>
<p>hmm</p>



<a name="204602621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204602621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204602621">(Jul 21 2020 at 21:03)</a>:</h4>
<p>well, some are Ambiguous now because they are now inference vars instead of placeholders</p>



<a name="204602695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204602695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204602695">(Jul 21 2020 at 21:04)</a>:</h4>
<p>so, when they are <code>non_enumerable</code>, they flounder. Which makes me feel like I made a mistake somewhere</p>



<a name="204603489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204603489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204603489">(Jul 21 2020 at 21:12)</a>:</h4>
<p>(I didn't have time to dig more deeply yet, but will try to do so)</p>



<a name="204604082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204604082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204604082">(Jul 21 2020 at 21:18)</a>:</h4>
<p>No worries. I might take another look later tonight if I have time</p>



<a name="204617218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204617218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204617218">(Jul 22 2020 at 00:01)</a>:</h4>
<p>Ah okay. So <em>one</em> new issue when canonicalizing placeholders comes when we invert a goal</p>



<a name="204617277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204617277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204617277">(Jul 22 2020 at 00:02)</a>:</h4>
<p>So, for <code>forall&lt;T&gt; { not { [T]: Sized } }</code></p>



<a name="204617300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204617300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204617300">(Jul 22 2020 at 00:02)</a>:</h4>
<p>This will fail: <code>let inverted_subgoal = infer.invert_goal(context.interner(), subgoal)?;</code></p>



<a name="204631544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631544">(Jul 22 2020 at 05:28)</a>:</h4>
<p>Wait why are placeholders get instantiated as inference vars</p>



<a name="204631654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631654">(Jul 22 2020 at 05:31)</a>:</h4>
<p>Also I don't quite understand why <code>free_vars</code> in your <code>canonicalize.rs</code> contain both  placeholders and inference vars, I thought they are supposed to just contain inference vars (hence the name)</p>



<a name="204631709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631709">(Jul 22 2020 at 05:32)</a>:</h4>
<p>Well, so we want to match rustc's canonicalization of placeholders</p>



<a name="204631728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631728">(Jul 22 2020 at 05:33)</a>:</h4>
<p>So, the placeholders turn into bound vars</p>



<a name="204631731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631731">(Jul 22 2020 at 05:33)</a>:</h4>
<p>Yeah</p>



<a name="204631739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631739">(Jul 22 2020 at 05:34)</a>:</h4>
<p>And then when we create a subgoal, those turn into inference vars, if I'm remembering correctly</p>



<a name="204631782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631782">(Jul 22 2020 at 05:34)</a>:</h4>
<p>(But that also might not be right)</p>



<a name="204631796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631796">(Jul 22 2020 at 05:34)</a>:</h4>
<p>But, the free vars includes placeholders now because now placeholders <em>are</em> vars</p>



<a name="204631819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631819">(Jul 22 2020 at 05:35)</a>:</h4>
<p>But again, that might not be right and my understanding here might be wrong</p>



<a name="204631825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631825">(Jul 22 2020 at 05:35)</a>:</h4>
<p>This mostly just matched up with how rustc does it</p>



<a name="204631871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631871">(Jul 22 2020 at 05:36)</a>:</h4>
<p>In rustc, it isn't called free vars, but something else</p>



<a name="204631887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631887">(Jul 22 2020 at 05:36)</a>:</h4>
<p>They instantiate into inference vars because that's the logic, but I thought you are supposed to match on CanonicalVarKind and instantiate them into placeholder variables if they are a placeholder variable</p>



<a name="204631975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631975">(Jul 22 2020 at 05:39)</a>:</h4>
<p>Right, which makes me feel like my statement is wrong</p>



<a name="204631979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631979">(Jul 22 2020 at 05:39)</a>:</h4>
<p>Free vars are needed to merge solutions</p>



<a name="204631986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204631986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204631986">(Jul 22 2020 at 05:39)</a>:</h4>
<p>It's been a bit since I've dug into this</p>



<a name="204632038"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632038" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632038">(Jul 22 2020 at 05:40)</a>:</h4>
<p>But basically, chalk-engine doesn't instantiate the canonical to create a subgoal, IIRC</p>



<a name="204632074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632074">(Jul 22 2020 at 05:41)</a>:</h4>
<p>Hmm or maybe it does</p>



<a name="204632207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632207">(Jul 22 2020 at 05:44)</a>:</h4>
<p>it doesnt seem to I think?</p>



<a name="204632223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632223">(Jul 22 2020 at 05:45)</a>:</h4>
<p><code>program_clauses_for_goal</code> is called for a canonical value</p>



<a name="204632278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632278">(Jul 22 2020 at 05:46)</a>:</h4>
<p>Indeed</p>



<a name="204632286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632286">(Jul 22 2020 at 05:47)</a>:</h4>
<p>Also, I don't think chalk-engine uses free vars at all</p>



<a name="204632290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632290">(Jul 22 2020 at 05:47)</a>:</h4>
<p>and everything flounders on a bound var, isnt that nice</p>



<a name="204632293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632293">(Jul 22 2020 at 05:47)</a>:</h4>
<p>Haha yep</p>



<a name="204632356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632356">(Jul 22 2020 at 05:49)</a>:</h4>
<p>Well uhh</p>



<a name="204632366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632366">(Jul 22 2020 at 05:49)</a>:</h4>
<p>Err wait, chalk-engine does instantiate goals before getting program clauses</p>



<a name="204632372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632372">(Jul 22 2020 at 05:49)</a>:</h4>
<p>Chalk-recursive doesn't</p>



<a name="204632440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632440">(Jul 22 2020 at 05:50)</a>:</h4>
<p>Oooh, I stumbled into the wrong solve</p>



<a name="204632509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632509">(Jul 22 2020 at 05:52)</a>:</h4>
<p>In my branch I got stopped on merging guidance and reformatting the output so it matches the old version</p>



<a name="204632538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632538">(Jul 22 2020 at 05:52)</a>:</h4>
<p>Hmm</p>



<a name="204632540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632540">(Jul 22 2020 at 05:53)</a>:</h4>
<p>Is your code up?</p>



<a name="204632561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632561">(Jul 22 2020 at 05:53)</a>:</h4>
<p>Yes, but it panics on every second test because merging (I think at least, I didnt trace it)</p>



<a name="204632617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632617">(Jul 22 2020 at 05:54)</a>:</h4>
<p><a href="https://github.com/rust-lang/chalk/compare/master...Areredify:canonicalization_rework">https://github.com/rust-lang/chalk/compare/master...Areredify:canonicalization_rework</a></p>



<a name="204632623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632623">(Jul 22 2020 at 05:55)</a>:</h4>
<p>Also it's old, Ill rebase it one moment</p>



<a name="204632637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632637">(Jul 22 2020 at 05:55)</a>:</h4>
<p>That's okay. I'm up way too late to think too hard about this or do anything</p>



<a name="204632699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632699">(Jul 22 2020 at 05:56)</a>:</h4>
<p>Also sorry I vanished everyone</p>



<a name="204632707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632707">(Jul 22 2020 at 05:57)</a>:</h4>
<p>I plan to start working on chalk fulltime starting august hopefully</p>



<a name="204632740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632740">(Jul 22 2020 at 05:57)</a>:</h4>
<p>Fulltime? Oooh</p>



<a name="204632745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632745">(Jul 22 2020 at 05:57)</a>:</h4>
<p>Fancy</p>



<a name="204632996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204632996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204632996">(Jul 22 2020 at 06:03)</a>:</h4>
<p>rebased</p>



<a name="204633189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204633189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204633189">(Jul 22 2020 at 06:07)</a>:</h4>
<p>Anyways, I'm gonna sleep now. I'll maybe look more through your branch tomorrow. But I think the biggest difference is the free vars being split in yours</p>



<a name="204633243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204633243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204633243">(Jul 22 2020 at 06:08)</a>:</h4>
<p>And then also I guess CanonicalVarKinds being 6 different variants in mine whereas you use a Source enum</p>



<a name="204633321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/Canonicalization/near/204633321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/Canonicalization.html#204633321">(Jul 22 2020 at 06:10)</a>:</h4>
<p>Yeah I don't see a big difference between our branches either</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>